#ifndef _LJMU_WIN_INPUT_H_
#define _LJMU_WIN_INPUT_H_

/*********************************
* Class To Represent Windows 32 
* Message Input Functionality.
* This class can be piped into the
* Windows Messaging System to receive
* information on which keys are pressed
* and which keys are currently up.
*
* AUTHOR:  CHRIS CARTER
**********************************/
class LJMUUtilKeyInput
{
public:
	//-----------CONSTRUCTORS AND DESTRUCTORS---------------------------------------
	LJMUUtilKeyInput(){};
	LJMUUtilKeyInput(const LJMUUtilKeyInput&){};
	~LJMUUtilKeyInput(){};
	
	//-----------ACCESSORS AND MUTATORS---------------------------------------------
	void setWMKeyDown(unsigned int pkeycode);
	void setWMKeyUp(unsigned int pkeycode);
	bool isKeyDown(unsigned int pkeycode);

	//-----------PUBLIC METHODS-----------------------------------------------------
	virtual void initKeyInput();

protected:
	//The Keyboard State of our ASCII Win Character Keys
	bool _key_state[256];
};
#endif